import keys from '@/static/keys/index.js'

export default {
	/**
	 * 获取百度的access_token
	 */
	get_access_token() {
		uni.showLoading({
			title: '正在连接服务...'
		})
		// 使用promise进行封装请求
		return new Promise(resolve => {
			uni.request({
				url: 'https://aip.baidubce.com/oauth/2.0/token',
				method: 'GET',
				data: {
					grant_type: 'client_credentials',
					// 每一个自然月更换一次key
					client_id: keys.API_Key,
					client_secret: keys.Secret_Key
				},
				success(res) {
					uni.hideLoading()
					resolve(res)
				},
				fail(err) {
					uni.hideLoading()
					uni.showToast({
						title: '连接服务出错，请稍后再试!',
						icon:'none'
					})
				}
			})
		})
	},
	
	/**
	 * 将图片地址转换为base64String
	 * @param {string} temp_url 临时图片路径
	 */
	toBase64String(temp_url) {
		uni.showLoading({
			title:'正在上传图片...'
		})
		// 获取全局唯一文件管理器
		const fs = wx.getFileSystemManager()
		// 将图片转换为base64
		const base64String = fs.readFileSync(temp_url, 'base64')
		uni.hideLoading()
		return base64String
	},
	
	/**
	 * 校园卡识别
	 * @param {string} access_token 访问令牌
	 * @param {string} base64String base64编码
	 */
	campus_card_detect(access_token, base64String){
		uni.showLoading({
			title:'正在识别...'
		})
		return new Promise(resolve=>{
			uni.request({
				url:`https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token=${access_token}`,
				method:'POST',
				data:{
					image:base64String
				},
				header:{
					'Content-Type':'application/x-www-form-urlencoded'
				},
				success(res) {
					uni.hideLoading()
					uni.showToast({
						title:'识别成功！',
						icon:'success'
					})
					resolve(res)
				},
				fail(err) {
					uni.hideLoading()
					uni.showToast({
						title:'识别错误，请稍后再试！'
					})
				}
			})
		})
	},

	/**
	 * 身份证识别
	 * @param {string} access_token 访问令牌
	 * @param {string} base64String base64编码
	 */
	ID_card_detect(access_token, base64String){
		uni.showLoading({
			title:'正在识别...'
		})
		return new Promise(resolve=>{
			uni.request({
				url:`https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=${access_token}`,
				method:'POST',
				data:{
					image:base64String,
					id_card_side:'front'
				},
				header:{
					'Content-Type':'application/x-www-form-urlencoded'
				},
				success(res) {
					uni.hideLoading()
					uni.showToast({
						title:'识别成功！',
						icon:'success'
					})
					resolve(res)
				},
				fail(err) {
					uni.hideLoading()
					uni.showToast({
						title:'识别错误，请稍后再试！'
					})
				}
			})
		})
	},
	
	/**
	 * 电影卡识别
	 * @param {string} access_token 访问令牌
	 * @param {string} base64String base64编码
	 */
	movie_card_detect(access_token, base64String){
		uni.showLoading({
			title:'正在识别...'
		})
		return new Promise(resolve=>{
			uni.request({
				url:`https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token=${access_token}`,
				method:'POST',
				data:{
					image:base64String
				},
				header:{
					'Content-Type':'application/x-www-form-urlencoded'
				},
				success(res) {
					uni.hideLoading()
					uni.showToast({
						title:'识别成功！',
						icon:'success'
					})
					resolve(res)
				},
				fail(err) {
					uni.hideLoading()
					uni.showToast({
						title:'识别错误，请稍后再试！'
					})
				}
			})
		})
	},
	
	/**
	 * 银行卡识别
	 * @param {string} access_token 访问令牌
	 * @param {string} base64String base64编码
	 */
	bank_card_detect(access_token, base64String){
		uni.showLoading({
			title:'正在识别...'
		})
		return new Promise(resolve=>{
			uni.request({
				url:`https://aip.baidubce.com/rest/2.0/ocr/v1/bankcard?access_token=${access_token}`,
				method:'POST',
				data:{
					image:base64String
				},
				header:{
					'Content-Type':'application/x-www-form-urlencoded'
				},
				success(res) {
					uni.hideLoading()
					uni.showToast({
						title:'识别成功！',
						icon:'success'
					})
					resolve(res)
				},
				fail(err) {
					uni.hideLoading()
					uni.showToast({
						title:'识别错误，请稍后再试！'
					})
				}
			})
		})
	},
	
	/**
	 * 其他物品识别lost&found
	 * @param {string} access_token 访问令牌
	 * @param {string} base64String base64编码
	 */
	other_item_detect(access_token, base64String){
		uni.showLoading({
			title:'正在识别...'
		})
		return new Promise(resolve=>{
			uni.request({
				url:`https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general?access_token=${access_token}`,
				method:'POST',
				data:{
					image:base64String
				},
				header:{
					'Content-Type':'application/x-www-form-urlencoded'
				},
				success(res) {
					uni.hideLoading()
					uni.showToast({
						title:'识别成功！',
						icon:'success'
					})
					resolve(res)
				},
				fail(err) {
					uni.hideLoading()
					uni.showToast({
						title:'识别错误，请稍后再试！'
					})
				}
			})
		})
	}
	
}